#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/resource.h>

void pr_limits(char* name, int resource) {
	struct rlimit limit;

	if (getrlimit(resource, &limit) < 0) {
		printf("getrlimit error: %s\n", strerror(errno));
		return;
	}

	printf("%-14s ", name);
	if (limit.rlim_cur == RLIM_INFINITY)
		printf("(infinite) ");
	else 
		printf("10l%d" , limit.rlim_cur);

	if (limit.rlim_max == RLIM_INFINITY)
		printf("(infinite) ");
	else 
		printf("10l%d", limit.rlim_max);

	printf("\n");
}

#define doit(name) pr_limits(#name, name);

int main() {
	doit(RLIMIT_AS);
	doit(RLIMIT_CORE);
	doit(RLIMIT_CPU);
	doit(RLIMIT_MEMLOCK);

	return 0;
}